package com.rongke.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rongke.utils.DateJsonDeserializer;
import com.rongke.utils.DateJsonSerializer;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @Optionsymbol
 * @股票(后台)(optionsymbol)
 * @version : Ver 1.0
 */
@TableName("optionsymbol")
public class Optionsymbol implements Serializable {
	@TableField(exist = false)
	private static final long serialVersionUID = 1L;

	@TableField(exist = false)
	private Float price;
	@TableField(exist = false)
	private Float premiumRate;
	@TableField(exist = false)
	private Float chg;//跌涨幅
	@TableField(exist = false)
	private String strTime;//期限（字符串）

	public String getStrTime() {
		return strTime;
	}

	public void setStrTime(String strTime) {
		this.strTime = strTime;
	}

	public Float getChg() {
		return chg;
	}

	public void setChg(Float chg) {
		this.chg = chg;
	}

	/**
	 * @备注:
	 * @字段:id BIGINT(19)
	 */
/*
	@TableId(type = IdType.AUTO)
	private Long id;
*/


	public Float getPrice() {
		return price;
	}

	public void setPrice(Float price) {
		this.price = price;
	}

	public Float getPremiumRate() {
		return premiumRate;
	}

	public void setPremiumRate(Float premiumRate) {
		this.premiumRate = premiumRate;
	}

	/**

	 * @备注:类别id。默认值1
	 * @字段:option_category_id INT(10)
	 */
	@JSONField(name="option_category_id")
	private Integer optionCategoryId;


	/**
	 * @备注:期权名称
	 * @字段:option_name VARCHAR(128)
	 */
	@JSONField(name="option_name")
	private String optionName;

	public Date getCreateDatetime() {
		return createDatetime;
	}

	public void setCreateDatetime(Date createDatetime) {
		this.createDatetime = createDatetime;
	}

	public Date getUpdateDatetime() {
		return updateDatetime;
	}

	public void setUpdateDatetime(Date updateDatetime) {
		this.updateDatetime = updateDatetime;
	}

	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private Date createDatetime ;
	@JsonSerialize(using=DateJsonSerializer.class)
	@JsonDeserialize(using=DateJsonDeserializer.class)
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
	private Date updateDatetime;

	/**
	 * @备注:市场id
	 * @字段:exch_id VARCHAR(33)
	 */
	@JSONField(name="exch_id")
	private String exchId;


	/**
	 * @备注:股票期货代码
	 * @字段:underlying VARCHAR(128)
	 */
	@JSONField(name="underlying")
	private String underlying;


	/**
	 * @备注:期权代码id
	 * @字段:md_option_id INT(10)
	 */

	@JSONField(name="md_option_id")
	private Integer mdOptionId;


	/**
	 * @备注:行权周期
	 * @字段:time_span INT(10)
	 */
	@JSONField(name="time_span")
	private Integer timeSpan;


	/**
	 * @备注:0：看涨，1：看跌
	 * @字段:call_put INT(10)
	 */
	@JSONField(name="callPut")
	private Integer callPut;


	/**
	 * @备注:状态1.正常发布2.下架
	 * @字段:status INT(10)
	 */
	@JSONField(name="status")
	private Integer status;


	/**
	 * @备注:
	 * @字段:multiplier FLOAT(12)
	 */
	private Float multiplier;


	/**
	 * @备注:品种代码
	 * @字段:production_code VARCHAR(20)
	 */
	@JSONField(name="production_code")
	private String productionCode;


	/**
	 * @备注:品种名称
	 * @字段:production_name VARCHAR(50)
	 */
	@JSONField(name="production_name")
	private String productionName;


	/**
	 * @备注:
	 * @字段:maturity_type INT(10)
	 */
	@JSONField(name="maturity_type")
	private Integer maturityType;


	/**
	 * @备注:
	 * @字段:strike_type INT(10)
	 */
	@JSONField(name="strike_type")
	private Integer strikeType;


	/**
	 * @备注:
	 * @字段:strike FLOAT(12)
	 */
	private Float strike;


	/**
	 * @备注:
	 * @字段:option_sub_type INT(10)
	 */
	@JSONField(name="option_sub_type")
	private Integer optionSubType;


	/**
	 * @备注:
	 * @字段:b1 FLOAT(12)
	 */
	private Float b1;


	/**
	 * @备注:
	 * @字段:b2 FLOAT(12)
	 */
	private Float b2;


	/**
	 * @备注:
	 * @字段:rebate FLOAT(12)
	 */
	private Float rebate;


	/**
	 * @备注:
	 * @字段:bar_option_type VARCHAR(20)
	 */
	@JSONField(name="bar_option_type")
	private String barOptionType;


	/**
	 * @备注:
	 * @字段:bar_type VARCHAR(20)
	 */
	@JSONField(name="bar_type")
	private String barType;


	/**
	 * @备注:
	 * @字段:bar_interval VARCHAR(20)
	 */
	@JSONField(name="bar_interval")
	private String barInterval;


	/**
	 * @备注:推荐：1.是；其他值.否
	 * @字段:commend INT(10)
	 */
	private Integer commend;


	public Optionsymbol(){
	}

	public Optionsymbol(
		Integer mdOptionId
	){
		this.mdOptionId = mdOptionId;
	}






	public void setOptionCategoryId(Integer optionCategoryId) {
		this.optionCategoryId = optionCategoryId;
	}

	public Integer getOptionCategoryId() {
		return this.optionCategoryId;
	}


	public void setOptionName(String optionName) {
		this.optionName = optionName;
	}

	public String getOptionName() {
		return this.optionName;
	}


	public void setExchId(String exchId) {
		this.exchId = exchId;
	}

	public String getExchId() {
		return this.exchId;
	}


	public void setUnderlying(String underlying) {
		this.underlying = underlying;
	}

	public String getUnderlying() {
		return this.underlying;
	}


	public void setMdOptionId(Integer mdOptionId) {
		this.mdOptionId = mdOptionId;
	}

	public Integer getMdOptionId() {
		return this.mdOptionId;
	}


	public void setTimeSpan(Integer timeSpan) {
		this.timeSpan = timeSpan;
	}

	public Integer getTimeSpan() {
		return this.timeSpan;
	}


	public void setCallPut(Integer callPut) {
		this.callPut = callPut;
	}

	public Integer getCallPut() {
		return this.callPut;
	}


	public void setStatus(Integer status) {
		this.status = status;
	}

	public Integer getStatus() {
		return this.status;
	}


	public void setMultiplier(Float multiplier) {
		this.multiplier = multiplier;
	}

	public Float getMultiplier() {
		return this.multiplier;
	}


	public void setProductionCode(String productionCode) {
		this.productionCode = productionCode;
	}

	public String getProductionCode() {
		return this.productionCode;
	}


	public void setProductionName(String productionName) {
		this.productionName = productionName;
	}

	public String getProductionName() {
		return this.productionName;
	}


	public void setMaturityType(Integer maturityType) {
		this.maturityType = maturityType;
	}

	public Integer getMaturityType() {
		return this.maturityType;
	}


	public void setStrikeType(Integer strikeType) {
		this.strikeType = strikeType;
	}

	public Integer getStrikeType() {
		return this.strikeType;
	}


	public void setStrike(Float strike) {
		this.strike = strike;
	}

	public Float getStrike() {
		return this.strike;
	}


	public void setOptionSubType(Integer optionSubType) {
		this.optionSubType = optionSubType;
	}

	public Integer getOptionSubType() {
		return this.optionSubType;
	}


	public void setB1(Float b1) {
		this.b1 = b1;
	}

	public Float getB1() {
		return this.b1;
	}


	public void setB2(Float b2) {
		this.b2 = b2;
	}

	public Float getB2() {
		return this.b2;
	}


	public void setRebate(Float rebate) {
		this.rebate = rebate;
	}

	public Float getRebate() {
		return this.rebate;
	}


	public void setBarOptionType(String barOptionType) {
		this.barOptionType = barOptionType;
	}

	public String getBarOptionType() {
		return this.barOptionType;
	}


	public void setBarType(String barType) {
		this.barType = barType;
	}

	public String getBarType() {
		return this.barType;
	}


	public void setBarInterval(String barInterval) {
		this.barInterval = barInterval;
	}

	public String getBarInterval() {
		return this.barInterval;
	}


	public void setCommend(Integer commend) {
		this.commend = commend;
	}

	public Integer getCommend() {
		return this.commend;
	}
}
